from flask import Flask, request, jsonify

app = Flask(__name__)

@app.route('/add', methods=['GET', 'POST'])
def add_numbers():
    """
    接收两个参数并返回它们的和。
    支持GET和POST请求。
    参数可以通过查询字符串或JSON体传递。
    CCH：备注
    """
    # 尝试从查询字符串中获取参数
    num1 = request.args.get('num1', type=float)
    num2 = request.args.get('num2', type=float)

    # 如果查询字符串中没有参数，则尝试从JSON体中获取
    if num1 is None or num2 is None:
        data = request.get_json()
        if data and 'num1' in data and 'num2' in data:
            num1 = data['num1']
            num2 = data['num2']

    # 检查参数是否有效
    if num1 is None or num2 is None:
        return jsonify({'error': '缺少参数num1或num2'}), 400

    # 计算结果
    result = num1 + num2

    # 返回结果
    return jsonify({'result': result}), 200

if __name__ == '__main__':
    app.run(debug=True)